/**
 * 此文件用户配置常量，如果没有特殊需求，所有常量都分段写在这里
 */
import {CHANNEL, ENVIRONMENT} from './config';

export const APP_ID = 'wxba1fb550b3bd50f8';

/**
 * 格式化url占位符
 * eg: http://localhost:8080/user/{id}/name/{name}
 * urlFormat(url, {id: '111', name: 'yc'})
 * => http://localhost:8080/user/111/name/aa
 * @param url
 * @param param
 * @returns url
 */
export const urlFormat = (url, param) => {
    if (param === undefined || param === null || JSON.stringify(param) === '{}') {
        return url;
    }
    let keys = Object.keys(param);
    for (let key of keys) {
        url = url.replace(new RegExp('\\{' + key + '\\}', 'g'), param[key]);
    }
    return url;
};

// 客服电话
export const CUSTOMER_SERVICE_PHONE = '400-100-9737';

/** 基础URL，方面切换开发环境和线上环境 */
export function BASE_URL () {
    let channel = CHANNEL;
    if (channel === ENVIRONMENT.Dev) {
        return 'https://api.zhisland.com/wxapp/dev';
    } else if (channel === ENVIRONMENT.Test) {
        return 'https://api.zhisland.com/wxapp/test';
    } else if (channel === ENVIRONMENT.Pre) {
        return 'https://api.zhisland.com/wxapp/pre';
    } else if (channel === ENVIRONMENT.Product) {
        return 'https://api.zhisland.com/wxapp/product';
    } else if (channel === ENVIRONMENT.Mock) {
        return 'http://192.168.2.102:7300/mock/5ac2eac44a0ff1146a6002a3';
    }
}

// 后台接口URL配置 开始
export const BASE_CONTEXT = '/onlinecourse';
/** formId 手机 */
export const API_FORMID_COLLECT = `/formid/collect`;
/** 上传图片 */
export const API_UPLOAD_IMG = `https://www.zhisland.com/bms-api-upload/upload/uploadWxPic`;
/** 课程列表URL */
export const API_COURESE_LIST = `/onlinecourse/course/list`;
/** 首页广告数据 */
export const API_INDEX_AD = `${BASE_CONTEXT}/ad`;
// gate way 通用接口 start
/** Session登录获取正和岛user */
export const API_WECHAT_LOGIN = `/auth/wx/login`;
/** 解密并绑定微信用户信息 */
export const API_DECODE_BIND = `/auth/wx/decode/bind`;
/** 主动发起登录或注册 */
export const API_ZH_LOGIN_OR_REGISTER = `${BASE_CONTEXT}/login`;
/*  */
export const API_UPDATE_USER = `${BASE_CONTEXT}/updateUser`;
/* 获取手机号验证码 */
export const API_GET_VERIFY_CODE = `/auth/verifycode`;

export const API_POST_ENCRYPT_DATA = `/auth/wx/mobile`;
/** 获取课程目录信息 */
export const API_GET_COURSE_LESSONS = `${BASE_CONTEXT}/course/lessons`;
/** 获取小节详情 */
export const API_GET_LESSON = `${BASE_CONTEXT}/lesson/{lessonId}`;
/* 获取课程信息 */
export const API_GET_COURSE_INFO = `${BASE_CONTEXT}/course/{courseId}`;
/* 获取课程目录信息 */
export const API_GET_COURSE_CATALOG = `${BASE_CONTEXT}/course/lessons/{courseId}`;
/* 获取我的已购课程列表 */
export const API_GET_MY_COURSE = `${BASE_CONTEXT}/course/mylist`;
/* 获取礼物详情 */
export const API_GET_GIFT_DETAIL = `${BASE_CONTEXT}/gift/detail`;
/* 拆礼物 */
export const API_OPEN_GIFT = `${BASE_CONTEXT}/gift/{giftId}/open`;
/* 获取支付状态 */
export const API_GET_PAYMENT_STATUS = `${BASE_CONTEXT}/pay/status/{courseId}`;
/* 发起课程支付 */
export const API_PAY_COURSE = `${BASE_CONTEXT}/pay/{courseId}`;
/* 获取课程介绍 */
export const API_GET_COURSE_INTRO = `${BASE_CONTEXT}/course/intro/{courseId}`;
/* 留言列表 */
export const API_COMMENT_LIST = `${BASE_CONTEXT}/lesson/comment/{lessonId}/list`;
/* 留言点赞 */
export const API_COMMENT_LIKE = `${BASE_CONTEXT}/lesson/comment/{commentId}/like`;
/* 删除留言 */
export const API_COMMENT_DELETE = `${BASE_CONTEXT}/lesson/comment/{commentId}/delete`;
/* 新增留言 */
export const API_COMMENT_ADD = `${BASE_CONTEXT}/lesson/comment/add`;
// 后台接口URL配置 结束

// 后台错误状态默认提示
export const SERVICE_ERROR_STATUS = {
    820: '参数丢失',
    821: '参数不在规定范围内',
    822: '参数不合法',
    810: '资源已经不存在',
    811: '资源重复存在',
    812: '不支持该资源',
    813: '或者资源已达到上限',
    814: '资源已经过期',
    815: '资源失效或未激活',
    816: '资源被禁用',
    817: '无权访问该资源',
    818: '资源信息不完整',
    860: '调用第三方服务失败',
    850: '不支持此接口',
    851: '需要升级客户端',
    852: '用户状态错误' // 此状态需要登出
};

// region 本地存储key
export const STORAGE_SESSION = 'storage_session';
export const STORAGE_USERINFO = 'storage_userinfo';
// endregion

// 支付状态
export const PAY_STATUS = {
    TYPE_HAD_PAY: 1, // 已支付
    TYPE_NOT_PAY: 2, // 未支付
    TYPE_IS_PAYING: 3 // 支付中
};

// 用户身份类型
export const USER_IDENTITY_TYPE = {
    TYPE_YUZHUCE: 50, // 预注册
    TYPE_DING: 100, // 岛丁
    TYPE_FANGKE: 200, // 访客
    TYPE_FANGKE_AUTHED: 280, // 已认证访客
    TYPE_HAIKE: 300, // 海客
    TYPE_VIP: 400 // 岛亲(岛邻)
};

// 用户登录状态
export const LOGIN_STATUS = {
    LOGIN_DEFAULT: -1,
    WX_LOGIN_SUCCESS: 10,
    WX_LOGIN_FAILED: 20,
    SESSION_LOGIN_SUCCESS: 30,
    SESSION_LOGIN_FAILED: 40,
    ZH_LOGIN_SUCCESS: 50,
    ZH_LOGIN_FAILED: 60
};

/** 事件总线key */
export const EVENT_BUS_KEY = {
    /** 登录状态改变 */
    LOGIN_STATUS_UPDATE: 'login_status_update',
    /** 触发 重新播放音频 */
    PLAY_LESSON_UPDATE: 'play_lesson_update',
    /** 播放上一节 */
    PLAY_LESSON_PREV: 'play_lesson_prev',
    /** 播放下一节 */
    PLAY_LESSON_NEXT: 'play_lesson_next',
    /** 通知播放器更新状态 */
    PLAY_UPDATE_STATUS: 'play_update_status',
    /** 全局播放器开始播放音频 */
    PLAYER_STAT_RESUMED: 'player_stat_resumed',
    /** 全局播放器暂停播放音频 */
    PLAYER_STAT_PAUSED: 'player_stat_paused',
    /** 全局播放器停止播放音频 */
    PLAYER_STAT_STOPPED: 'player_stat_stopped',
    /** 触发 我的 页面刷新 */
    REFRESH_MY_COURSE: 'refresh_my_course',
    /** 添加评论成功 */
    ADD_COMMENT_SUCCESS: 'add_comment_success',
    /** 购买课程成功 */
    PAY_COURSE_SUCCESS: 'pay_course_success'
};

/** 全局缓存类型 - 数据缓存在storage中 */
export const GLOBAL_STORE_TYPE_STORAGE = 'store_type_storage';
/** 全局缓存类型 - 数据缓存在全局变量global中 */
export const GLOBAL_STORE_TYPE_OBJECT = 'store_type_object';
/** 全局数据缓存的key - 课程信息 */
export const GLOBAL_STORE_KEY_LESSON_INFO = 'global_store_key_lesson_info';
/** 全局数据缓存的key - 当前播放课程的音频列表 */
export const GLOBAL_STORE_KEY_CURRENT_PLAY_LIST = 'global_store_key_current_play_list';
/** 全局数据缓存的key - 当前正在学习的课程信息 */
export const GLOBAL_STORE_KEY_CURRENT_LESSON = 'global_store_key_current_lesson';
/** 全局数据缓存的key - 已经学习过的课程列表 */
export const GLOBAL_STORE_KEY_STUDIED_LESSONS = 'global_store_key_studied_lessons';

// region URI router
const URI_HOST = 'zhisland://com.zhisland/';
/** 首页 */
export const URI_COURSE_HOME = `${URI_HOST}course`;
/** 课程详情 */
export const URI_COURSE = `${URI_HOST}course/(.*)`;
/** 小节详情 */
export const URI_LESSON = `${URI_HOST}course/lesson/(.*)`;
/** 我的页面 */
export const URI_MY_COURSE = `${URI_HOST}course/purchaseList`;
/** 网页 */
export const URI_WEB_PAGE = `${URI_HOST}webPage\\?url=(.*)`;
// endregion

export const PAY_ERROR = {
    USER_NOT_LOGIN: 1,
    GET_PAY_OBJ_ERR: 2,
    WX_PAY_ERR: 3,
    GET_PAY_STATUS_ERR: 4,
    REPEAT_PURCHASES: 5
};

// router 跳转方式
export const OPEN_TYPE = {
    NAVIGATE: 'navigate',
    REDIRECT: 'redirect',
    RELAUNCH: 'relaunch'
};

export const PAGE_NAME = {
    OPEN_GIFT: 'open_gift',
    FROM_DETAIL: 'from_detail'
};

export const USER_STATUS = {
    ACTIVITY_BAD: -2, // 黑名单用户
    ACTIVITY_FREEZE: 2 // 冻结用户
};
